#ifndef DAOFACTORY_H_
#define DAOFACTORY_H_

#include "dao/UserDAO.h"
#include "dao/GenreDAO.h"
#include "dao/ContentDAO.h"
#include "dao/PreferenceDAO.h"

class DAOFactory {
private:
	static const int SQLITE = 1;
	static const int factory = SQLITE;

protected:
	DAOFactory() {
	}

public:
	static DAOFactory* getDAOFactory();
	virtual void create_db() = 0;
	virtual void connect_db() = 0;
	virtual void disconnect_db() = 0;
	virtual UserDAO* getUserDAO() = 0;
	virtual GenreDAO* getGenreDAO() = 0;
	virtual ContentDAO* getContentDAO() = 0;
	virtual PreferenceDAO* getPreferenceDAO() = 0;
	virtual ~DAOFactory() {
	}
};

#endif /* DAOFACTORY_H_ */
